He estado intentando esto durante horas y finalmente me doy por vencido. Como puedes ver, soy un gran novato y tengo poca o ninguna idea de lo que estoy haciendo...
Tengo algunos JS que se llaman desde un button onclick= que POSTs a un archivo PHP. Me gustaría tomar estos datos POST y simplemente escribirlos en un archivo, nada especial, simplemente descargarlos sin procesar.
Probé varios métodos, pero ninguno parece funcionar, ya sea sin escribir los datos o escribiendo "()", "[]" (si intento codificar los datos POST como JSON), o simplemente la palabra "matriz " y así.
Métodos que he probado;
file_put_contents('test.txt', file_get_contents('php://input')); //this I thought *should* definitely work... var_dump / var_export / print_rIntenté almacenar lo anterior como $ datos y escribir eso también. Simplemente nada de lo que hago parece funcionar en absoluto.
Principalmente trato de usar fopen/write/close para hacer la acción (porque eso es todo lo que realmente "sé"). El archivo es escribible.
(parte del) JS que estoy usando para POST:
(del button onclick="send('breakfast') )
function send(food){ if(food == 'breakfast'){ $.post("recorder.php?Aeggs=" + $("textarea[name=eggs]").val());No estoy buscando extraer (?) Valores de los datos POST, solo escríbalo "tal cual" en un archivo, y no me molesta el formateo, etc.
¿Podría alguien por favor ayudarme a sacarme de mi miseria?
Puede usar fopen() y fwrite() para escribir texto en un archivo nuevo. print_r() podría usarse para obtener la estructura de los datos o podría escribir la publicación var en el archivo. Pero dado que su código del lado del cliente no envía ningún dato POST, use $_GET en el lado de php en lugar de $_POST . Aquí hay un ejemplo:
$f = fopen("post_log.txt", 'w'); // use 'w' to create the file if not exists or truncate anew if it does exist. See php.net for fopen() on other flags. fwrite($f, print_r($_GET, true)); // the true on print_r() tells it to return a string // to write just the Aeggs value to the file, use this code instead of the above fwrite: fwrite($f, $_GET["Aeggs"]); fclose($f); NOTA: El segundo parámetro de $.post() contendría los datos de "publicación". Como no tiene eso en su código, el $_POST en el lado de PHP será una matriz vacía.